home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Comm / AmiTCP30b2.lha / src / amitcp / GNUmakefile < prev    next >
Makefile  |  1994-05-12  |  10KB  |  350 lines

  1. # $Id: GNUmakefile,v 1.54 1994/05/12 15:23:42 jraja Exp $
  2. #
  3. # Copyright (c) 1993 AmiTCP/IP Group, <amitcp-group@hut.fi>,
  4. #                    Helsinki University of Technology, Finland.
  5. #                    All rights reserved.
  6. #
  7. # GNUmakefile for AmiTCP/IP Project
  8. #
  9. # Created      :     Nov 20 00:00:00 1992 Jarno Rajahalme
  10. # Last modified: Tue May 10 01:18:42 1994 jraja
  11. # HISTORY
  12. # $Log: GNUmakefile,v $
  13. # Revision 1.54  1994/05/12  15:23:42  jraja
  14. # Made bumprev path relative to allow usage on aplhas, too.
  15. #
  16. # Revision 1.53  1994/03/26  10:18:02  too
  17. # Added kern/accesscontrol.[cho]
  18. #
  19. # Revision 1.52  1994/03/26  10:15:29  too
  20. # Changes made by ppessi
  21. #
  22. # Revision 1.51  1994/02/15  20:47:27  jraja
  23. # Removed SCOPTIONS from distribution (Smakefile generates it).
  24. #
  25. # Revision 1.50  1994/02/03  21:44:52  ppessi
  26. # Added net/sana2config.[hc] to distribution,
  27. # removed "net/if_dl.h", "net/sana2tags.c".
  28. #
  29. # Revision 1.49  1994/01/23  22:15:00  jraja
  30. # Added net/sana2perror.c to the distribution, removed special rule for it.
  31. #
  32. # Revision 1.48  1994/01/12  07:13:36  jraja
  33. # Moved sys/cdefs.h to the netinclude.
  34. #
  35. # Revision 1.47  1994/01/09  21:17:52  too
  36. # Added amiga_errlists.c to API_C files
  37. #
  38. # Revision 1.46  1994/01/08  17:48:44  too
  39. # Added api/amiga_generic2.c, api/amiga_sendrecv.c and api/sockargs.h
  40. #
  41. # Revision 1.45  1993/11/07  00:35:06  ppessi
  42. # Added IP checksum in asm.
  43. #
  44. # Revision 1.44  1993/10/14  00:06:43  ppessi
  45. # Changed directory name from src back to amitcp
  46. #
  47. # Revision 1.43  1993/08/10  18:57:07  ppessi
  48. # Added revision files to the distribution.
  49. #
  50. # Revision 1.42  1993/08/09  21:27:16  ppessi
  51. # Added revision bumping.
  52. #
  53. # Revision 1.41  1993/08/04  07:43:21  jraja
  54. # Added kern/config_var.c to the distribution, so that it is not necessary
  55. # to have gawk unless the kern/variables.src is modified.
  56. #
  57. # Revision 1.40  1993/08/04  07:39:47  jraja
  58. # Removed sana headers from the distribution.
  59. #
  60. # Revision 1.39  1993/08/01  22:01:16  ppessi
  61. # Fixed the special rule for sana2perror.o.
  62. #
  63. # Revision 1.38  1993/07/21  13:21:09  too
  64. # Removed netinclude headers. Now this dorectory is src (formerly ami)
  65. #
  66. # Revision 1.37  1993/06/12  23:23:50  too
  67. # Added api/allocdatabuffer.c
  68. #
  69. # Revision 1.36  1993/06/12  11:24:19  jraja
  70. # Added special rule for the sana2perror.o.
  71. #
  72. # Revision 1.35  1993/06/12  10:17:49  jraja
  73. # Removed net/sana2perror.c, since it was moved to the netlib.
  74. #
  75. # Revision 1.34  1993/06/04  11:16:15  jraja
  76. # Fixes for first public release.
  77. #
  78. # Revision 1.33  1993/06/03  00:27:35  jraja
  79. # Added apicalls*.h.
  80. #
  81. # Revision 1.32  1993/06/02  19:39:46  too
  82. # fix
  83. #
  84. # Revision 1.31  1993/06/02  19:25:27  too
  85. # Moved resolver stuff from kern/ to api/ -directory
  86. #
  87. # Revision 1.30  1993/06/01  16:55:03  too
  88. # Added resolver sources
  89. #
  90. # Revision 1.29  1993/06/01  08:05:00  puhuri
  91. # Removed ENVARC (not needeed anymore)
  92. #
  93. # Revision 1.28  1993/05/24  19:30:54  ppessi
  94. # Moved sys/syslog.h into netinclude; sanitized prototypes
  95. #
  96. # Revision 1.27  1993/05/16  23:33:59  ppessi
  97. # New RCS targets, alllocks, mylocks and verlocks.
  98. # The sana2errlist.c moved to the sana2 support library.
  99. #
  100. #
  101.  
  102. BINDIR= /p/projects/amiga-gcc/bin
  103. CC= $(BINDIR)/gcc-amigados
  104. AS= $(BINDIR)/gas
  105. LD= $(CC)
  106. #LD= $(BINDIR)/ld
  107. #LD= $(BINDIR)/ld-nostdlib
  108.  
  109. BUMPER= ../../../bin/bumprev
  110.  
  111. MAKE = gmake
  112. MAKEFILE = GNUmakefile
  113. GCCOPTIONS= GCCOPTS
  114. CFLAGS= `egrep -v '^\#' $(GCCOPTIONS)`
  115. CFLAGS_NO_OPT = `egrep -v '(^\#)|(-finline)|(-O)' $(GCCOPTIONS)` 
  116.  
  117. DIST_AMI = $(DIST)/amitcp
  118.  
  119. #
  120. # System headers
  121. #
  122. SYS_H= \
  123.     sys/synch.h sys/uio.h \
  124.     sys/kernel.h sys/malloc.h sys/mbuf.h sys/queue.h \
  125.     sys/socketvar.h sys/domain.h sys/protosw.h \
  126.     sys/systm.h 
  127.  
  128. PROTOS_H= \
  129.     protos/kern/amiga_api_protos.h     protos/kern/amiga_main_protos.h \
  130.     protos/kern/amiga_select_protos.h protos/kern/amiga_time_protos.h \
  131.     protos/kern/amiga_userlib_protos.h protos/kern/kern_malloc_protos.h \
  132.     protos/kern/kern_synch_protos.h protos/kern/subr_prf_protos.h \
  133.     protos/kern/uipc_domain_protos.h \
  134.     protos/kern/uipc_socket2_protos.h protos/kern/uipc_socket_protos.h \
  135.     protos/net/if_loop_protos.h protos/net/if_protos.h \
  136.     protos/net/radix_protos.h protos/net/raw_cb_protos.h \
  137.     protos/net/raw_usrreq_protos.h protos/net/rtsock_protos.h \
  138.     protos/netinet/in_cksum_protos.h protos/netinet/in_pcb_protos.h \
  139.     protos/netinet/in_proto_protos.h protos/netinet/in_protos.h \
  140.     protos/netinet/ip_icmp_protos.h protos/netinet/ip_input_protos.h \
  141.     protos/netinet/ip_output_protos.h protos/netinet/raw_ip_protos.h \
  142.     protos/netinet/tcp_debug_protos.h protos/netinet/tcp_input_protos.h \
  143.     protos/netinet/tcp_output_protos.h protos/netinet/tcp_subr_protos.h \
  144.     protos/netinet/tcp_timer_protos.h protos/netinet/tcp_usrreq_protos.h \
  145.     protos/netinet/udp_usrreq_protos.h
  146.  
  147. # Protocol inspecific network routines:
  148. # network interfaces, input queue scheduling, 
  149. # raw sockets, routing
  150. NET_C= \
  151.     net/if.c net/if_loop.c \
  152.     net/raw_cb.c net/raw_usrreq.c \
  153.     net/route.c net/rtsock.c net/radix.c \
  154.     net/if_sana.c net/netisr.c net/sana2config.c \
  155.     net/sana2copybuff.c net/sana2arp.c net/sana2perror.c
  156.  
  157. NET_H= \
  158.     net/if_types.h net/if_sana.h \
  159.     net/sana2request.h net/sana2arp.h net/sana2config.h \
  160.     net/netisr.h net/raw_cb.h net/radix.h 
  161.  
  162. # netinet -- internet protocols (ip, icmp, tcp, udp, arp)
  163. NETINET_C= \
  164.     netinet/in.c netinet/in_cksum.c netinet/in_pcb.c netinet/in_proto.c \
  165.     netinet/ip_icmp.c \
  166.     netinet/ip_input.c netinet/ip_output.c netinet/raw_ip.c \
  167.     netinet/tcp_debug.c netinet/tcp_input.c netinet/tcp_output.c \
  168.     netinet/tcp_subr.c netinet/tcp_timer.c netinet/tcp_usrreq.c \
  169.     netinet/udp_usrreq.c
  170.  
  171. NETINET_H= \
  172.     netinet/in_pcb.h netinet/in_var.h netinet/icmp_var.h  \
  173.     netinet/tcpip.h netinet/tcp_debug.h netinet/tcp_fsm.h \
  174.     netinet/tcp_seq.h netinet/tcp_timer.h netinet/tcp_var.h \
  175.     netinet/udp_var.h 
  176.  
  177.  
  178. # "Kernel" sources
  179. # main, timeouts, syncronization, memory management,
  180. # BSD socket ("Unix interprocess communication") routines,
  181. # logging and netstat rexx interface 
  182. KERN_C= \
  183.     kern/amiga_main.c kern/amiga_time.c kern/amiga_config.c \
  184.     kern/amiga_netdb.c \
  185.     kern/kern_synch.c kern/kern_malloc.c kern/uipc_mbuf.c \
  186.     kern/uipc_domain.c kern/uipc_socket.c kern/uipc_socket2.c \
  187.     kern/amiga_log.c kern/amiga_cstat.c kern/amiga_rexx.c \
  188.     kern/subr_prf.c kern/accesscontrol.c
  189.  
  190. KERN_H= \
  191.     kern/amiga_includes.h kern/amiga_time.h kern/amiga_config.h \
  192.     kern/amiga_netdb.h kern/amiga_log.h kern/amiga_rexx.h \
  193.     kern/amiga_subr.h kern/accesscontrol.h
  194.  
  195. # Application interface sources
  196. # Amiga "struct Library" interface, API functions,
  197. API_C=\
  198.     api/amiga_api.c api/amiga_libtables.c api/amiga_syscalls.c \
  199.     api/amiga_sendrecv.c api/amiga_generic.c api/amiga_generic2.c \
  200.     api/amiga_libcalls.c api/amiga_errlists.c \
  201.     api/getxbyy.c api/gethostnamadr.c api/allocdatabuffer.c \
  202.     api/res_comp.c api/res_debug.c api/res_init.c \
  203.     api/res_mkquery.c api/res_query.c api/res_send.c  \
  204.     api/auto_extras.c api/auto_inetaddr.c api/auto_netdb.c \
  205.     api/auto_nonsocket.c api/auto_protocols.c api/auto_socket.c 
  206.     #api/gethna_nores.c
  207.  
  208. API_H=\
  209.     api/amiga_raf.h api/amiga_api.h api/amiga_libcallentry.h \
  210.     api/allocdatabuffer.h api/gethtbynamadr.h \
  211.     api/arpa_nameser.h api/resolv.h api/sockargs.h \
  212.     api/apicalls.h api/apicalls_sasc.h api/apicalls_gnuc.h
  213.  
  214. #
  215. # Misc headers
  216. #
  217. MISC_H=\
  218.     all_includes.h conf/conf.h conf/rcs.h bsdsocket.library_rev.h
  219. #     clib/exec_protos.h 
  220.  
  221. #
  222. # Misc sources
  223. #
  224. MISC= \
  225.     all_includes.c GNUmakefile Smakefile GCCOPTS \
  226.     kern/variables.src kern/config_var.awk kern/config_var.c \
  227.     bsdsocket.library_rev.rev sys/mbuf.i netinet/in_cksum.asm
  228.  
  229. NET_O=      $(NET_C:.c=.o)
  230. NETINET_O=  $(NETINET_C:.c=.o)
  231. KERN_O=     $(KERN_C:.c=.o) kern/config_var.o
  232. API_O=     $(API_C:.c=.o)
  233. CSRCS=    $(API_C) $(KERN_C) $(NET_C) $(NETINET_C)
  234. OBJS=     $(API_O) $(KERN_O) $(NET_O) $(NETINET_O) 
  235. AMISRC=      $(CSRCS) $(SYS_H) $(API_H) $(KERN_H) $(NET_H) $(NETINET_H) \
  236.          $(MISC_H) $(MISC) $(PROTOS_H)
  237. #NETINCSRC=   $(SYS_HH) $(NET_HH) $(NETINET_HH) 
  238. SRCS=         $(AMISRC) #$(NETINCSRC)
  239. LIBSRC= #-lamy
  240. LIBS= #-nostdlib
  241. TARGETS= amitcp
  242. DIRS= net netinet kern api
  243.  
  244. all: dirs $(TARGETS)
  245.  
  246. opts: $(GCCOPTIONS)
  247.  
  248. $(GCCOPTIONS): # $(MAKEFILE)
  249.     echo "$(COPTIONS)" >$@
  250.  
  251. $(TARGETS): $(OBJS)
  252.     $(LD) -o $@ $(OBJS) $(LIBSRC) $(LIBS)
  253.  
  254. dirs: $(DIRS)
  255.  
  256. net: $(NET_O)
  257. netinet: $(NETINET_O)
  258. kern: $(KERN_O)
  259. api: $(API_O)
  260.  
  261. clean:
  262.     -rm -f net/*.o net/*.out net/*~
  263.     -rm -f netinet/*.o netinet/*.out netinet/*~
  264.     -rm -f kern/*.o kern/*.out kern/*~
  265.     -rm -f api/*.o api/*.out api/*~
  266.     -rm -f *.o *.out *~ core amitcp          # remove .o's too
  267.  
  268. depend:    
  269.     echo "# DO NOT DELETE THIS LINE -- make depend depends on it." >depend
  270.     makedepend -f depend -- $(CFLAGS) -- $(CSRCS)
  271.  
  272. .c.o: $(GCCOPTIONS)
  273.     $(CC) $(CFLAGS) -c $*.c -o $*.o
  274.  
  275. .c.s: $(GCCOPTIONS)
  276.     $(CC) $(CFLAGS) -S $*.c -o $*.s
  277.  
  278. # Special rule for variables
  279. kern/config_var.c: kern/variables.src kern/config_var.awk
  280.     -rm -f $@
  281.     gawk -f kern/config_var.awk -v TARGETTI=C $< > $@ || rm $@
  282.  
  283. # Special rule for TeX
  284. kern/config_var.tex: kern/variables.src kern/config_var.awk
  285.     -rm -f $@
  286.     gawk -f kern/config_var.awk -v TARGETTI=TEX $< > $@ || rm $@
  287.  
  288. # Special rules for files which broke optimization
  289. kern/subr_prf.o: kern/subr_prf.c
  290.     $(CC) $(CFLAGS_NO_OPT) -c kern/subr_prf.c -o $@
  291.  
  292. api/amiga_generic.o: api/amiga_generic.c
  293.     $(CC) $(CFLAGS_NO_OPT) -c api/amiga_generic.c -o $@
  294.  
  295. # Create tags
  296. TAGS: 
  297.     etags $(SRCS)
  298.  
  299. # Archive for sources
  300. amitcp.lha: $(SRCS) # locks
  301.     lha a $@ $ $(SRCS)
  302.  
  303. # Make a distribution archive
  304. DIST:   DIST_AMI
  305.  
  306. DIST_AMI: BUMPREV $(AMISRC)
  307.     test -d $(DIST) || mkdir $(DIST) 
  308.     test -d $(DIST_AMI) || mkdir $(DIST_AMI)
  309.     tar cf - $(AMISRC) | (cd $(DIST_AMI); tar xf -)
  310.  
  311. RELEASE: $(AMISRC)
  312.     for F in $(AMISRC) ; do \
  313.       rlog -R $$F && { \
  314.         if ident -q $$F | egrep -v '\$$Log' | fgrep '$$' >/dev/null ; \
  315.           then rcs -q '-N$(RELEASE):$$' $$F ; \
  316.           else rcs -q '-N$(RELEASE):' $$F ;\
  317.         fi ; \
  318.           } ;\
  319.     done ; \
  320.     echo "RELEASE '$(RELEASE)' done" 
  321.  
  322. # Bump the revision
  323. BUMPREV:
  324.     $(BUMPER) 3 bsdsocket.library_rev
  325.  
  326. # Test for RCS locks
  327. locks: 
  328.     @egrep '^locks\
  329.     [a-z]+' \
  330.     `echo $(CSRCS) $(SYS_H) $(API_H) $(KERN_H) $(NET_H) $(NETINET_H) $(MISC) \
  331.     | tr -cs "[!-~]" "[\012*]" | sed 's-[^/]*$$-RCS/&,v-g' `
  332.  
  333. alllocks:
  334.     @rlog -R -L $(CSRCS) \
  335.         $(SYS_H) $(API_H) $(KERN_H) \
  336.         $(NET_H) $(NETINET_H) $(MISC)
  337.  
  338. mylocks:
  339.     @rlog -R -l`whoami` -L $(CSRCS) \
  340.         $(SYS_H) $(API_H) $(KERN_H) \
  341.         $(NET_H) $(NETINET_H) $(MISC)
  342.  
  343. verlocks:
  344.     @rlog -h -L $(CSRCS) \
  345.         $(SYS_H) $(API_H) $(KERN_H) \
  346.         $(NET_H) $(NETINET_H) $(MISC)
  347.  
  348. include depend
  349.